A quantum computer is a computational system which uses quantum-mechanical phenomena, such as superposition and entanglement, to process data. Unlike digital computers, in which data is encoded into binary digits (bits) in one of two definite states (“0” or “1”), quantum computation requires data to be encoded into quantum bits (hereafter “qubits”), for which a single qubit may represent a “1,” a “0,” or any quantum superposition of the two qubit states. In general, a quantum computer with N qubits may be in an arbitrary superposition of up to 2N different states simultaneously, i.e., a pair of qubits may be in any quantum superposition of four states, and three qubits may be in any superposition of eight states.
Quantum computers are able to solve certain problems much more quickly and efficiently than digital computers (alternatively referred to herein as “classical computers”). In the operation of a quantum computer, computations may be initialized by setting qubits in a controlled initial state. By manipulating those qubits, predetermined sequences of quantum logic gates are realized that represent the solution to a problem to be solved, called a quantum algorithm. Quantum algorithms, such as Shor's algorithm, Simon's algorithm, etc., run faster than any possible probabilistic classical algorithm.
Based on the inherent advantages in quantum computers in solving certain problems, the challenge is in programming quantum computers to take advantage of their strengths in solving those problems.